% test_IQR_analysis.m
% 测试使用 IQR 法自动剔除异常值并计算均值与不确定度

clc; clear;

% 模拟数据（中间值附近测量数据 + 极端异常点）
data = [0.99, 1.01, 1.00, 1.02, 1.03, 0.98, 1.2, 0.97, 0.9, 0.9];

% 调用分析函数（确保 analyzeMeasurements_IQR_builtin.m 在路径下）
[meanVal, uncertainty, cleanData, outliers] = analyzeMeasurements_IQR_builtin(data);

% 打印结果
fprintf('原始数据:      [%s]\n', num2str(data));
fprintf('剔除后数据:    [%s]\n', num2str(cleanData'));
fprintf('剔除的异常值:  [%s]\n', num2str(outliers'));
fprintf('平均值: %.4f\n', meanVal);
fprintf('不确定度: %.4f\n', uncertainty);

% 可选：绘图展示
figure;
hold on;
plot(data, 'bo-', 'LineWidth', 1.5, 'DisplayName', '原始数据');
plot(find(ismember(data, outliers)), outliers, 'rx', 'MarkerSize', 12, 'LineWidth', 2, 'DisplayName', '异常值');
yline(meanVal, 'g--', 'LineWidth', 1.5, 'DisplayName', '剔除后均值');
xlabel('样本编号'); ylabel('测量值');
title('IQR 异常值剔除示意');
legend;
grid on;
